package net.zjitc.summary.user;

import java.util.ArrayList;

/**
 * @Author admin
 * @Date 2019/4/16 14:11
 *
 *   工具类 的具体实现类，用集合方式
 *   具体哪个集合：arrayList（单列，有序，不唯一）
 *                 HashSet（单列，无序，唯一）
 *                 HashMap（键值对，键是唯一的，值可以不唯一）
 */
public class UserSet implements UserDao {
    ArrayList<User> arrayList = new ArrayList<User>();


    /**
     * 注册功能：
     * 键传入的user对象保存在集合中
     * 考虑用户名不能重复
     */

    @Override
    public void register(User user) {
        /* 首先判断集合是否存在该用户名 user.getName()
         *  若存在，提示用户名重复
         *  若不存在，将用户user保存在集合中
         * */
        User u = select(user.getName());

        if (u!=null) {
            System.out.println("注册失败，用户名重复了！");
        } else {
            arrayList.add(user);
            System.out.println("注册成功！");
        }
    }

    /**
     * 判断集合中是否存在name
     * 若存在，返回true
     * 若不存在，返回false
     */
    private User select(String name) {
        for (int i = 0; i < arrayList.size(); i++) {
            if (arrayList.get(i).getName().equals(name)) {
                return arrayList.get(i);
            }
        }
        return null;
    }

    @Override
    public User login(String name, String password) {
        for (int i = 0; i < arrayList.size(); i++) {
            if (arrayList.get(i).getName().equals(name) &&
                    arrayList.get(i).getPassword().equals(password)) {
                return arrayList.get(i);
            }
        }
        return null;
    }

    @Override
    public void selectAll() {
       for (int i=0;i<arrayList.size();i++){
          User user=arrayList.get(i);
           System.out.println(user);
       }
    }

    @Override
    public void delete(String name) {
       User user=select(name);
        if (user==null){
            System.out.println("您要删除的对象不存在！");
        }else{
            arrayList.remove(user);
        }
    }

}
